import axios from 'axios'
import router from '@/router'
const service = axios.create({
	baseURL: import.meta.env.VITE_API_BASE_URL, // API 的 base_url
	timeout: 5000, // 请求超时时间
})
/**
 * http握手错误
 * @param res  响应回调,根据不同响应进行不同操作
 */
const errorHandle = (res: any) => {
	// 状态码判断
	switch (res.data.code) {
		case 401:
			router.push('/')
			break
		case 403:
			break
		case 404:
			console.error('请求的资源不存在')
			break
	}
}
// 请求拦截器
service.interceptors.request.use(
	(config) => {
		const token = localStorage.getItem('token')

		// 可以在这里添加请求头等信息
		config.headers['ya-auth-token'] = token
		return config
	},
	(error) => {
		// 请求错误处理
		return Promise.reject(error)
	},
)

// 响应拦截器
service.interceptors.response.use(
	(response) => {
		// 根据返回的http状态码做不同的处理
		errorHandle(response)
		return Promise.resolve(response)
	},
	(error) => {
		// 对响应错误做处理
		console.log('err' + error) // for debug
		return Promise.reject(error)
	},
)

export default service
